home *** CD-ROM | disk | FTP | other *** search
/ Commodore Disk User Volume 4 #11 / Commodore_Disk_User_Vol.4_11_1991_-.d64 / basic demo (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  4KB  |  83 lines

  1. 0 rem * * * * * * * ** * * * * * * *
  2. 1 rem *                            *
  3. 2 rem *     sprite  priorities     *
  4. 3 rem *        a basic demo        *
  5. 4 rem *          by bones          *
  6. 5 rem *                            *
  7. 6 rem * * * * * * * ** * * * * * * *
  8. 7 :
  9. 8 :
  10. 9 :
  11. 10 gosub66:rem  * initialise
  12. 11 :
  13. 12 rem ***** program mainloop *****
  14. 13 :
  15. 14 gosub55:rem  * keypress
  16. 15 jv=peek(js)and15:ifjv=15then14
  17. 16 gosub21:rem execute joy commands
  18. 17 goto14
  19. 18 :
  20. 19 rem     *** joystick up ***
  21. 20 :
  22. 21 ifjv<>14then32
  23. 22 ds(k)=ds(k)-4:ifds(k)<50thends(k)=50
  24. 23 pokev+1+(n*2),ds(k)
  25. 24 ifpeek(v+3+(n*2))<=peek(v+1+(n*2))then28
  26. 25 sys52832:rem * prioritise sprites
  27. 26 n=n+1:ifn>7thenn=7
  28. 27 ifn<>0thengosub64
  29. 28 return
  30. 29 :
  31. 30 rem   *** joystick down ***
  32. 31 :
  33. 32 ifjv<>13then43
  34. 33 ds(k)=ds(k)+4:ifds(k)>208thends(k)=208
  35. 34 pokev+1+(n*2),ds(k)
  36. 35 ifpeek(v+1+(n*2))<=peek(v-1+(n*2))then39
  37. 36 sys52832:rem * prioritise sprites
  38. 37 ifn<>0then gosub64
  39. 38 n=n-1:ifn<0thenn=0
  40. 39 return
  41. 40 :
  42. 41 rem  *** joystick left/right ***
  43. 42 :
  44. 43 y=peek(v+(n*2))
  45. 44 ifjv<>11then47
  46. 45 y=y-6:ify<24theny=24
  47. 46 goto49
  48. 47 ifjv<>7then23
  49. 48 y=y+6:ify>255theny=255
  50. 49 pokev+(n*2),y
  51. 50 return
  52. 51 :
  53. 52 rem   *** select-a-sprite ***
  54. 53 rem     *   keys 1 to 8   *
  55. 54 :
  56. 55 getk$:x=val(k$):ifx<1orx>8then60
  57. 56 k=x-1
  58. 57 forc=0to7
  59. 58 iff(c)=kthenn=c
  60. 59 next
  61. 60 return
  62. 61 :
  63. 62 rem  *** update f(lag) array ***
  64. 63 :
  65. 64 z=f(n):f(n)=f(n-1):f(n-1)=z:return
  66. 65 :
  67. 66 rem     *** initialise ***
  68. 67 :
  69. 68 poke53280,0:poke53281,0:print"[147]"
  70. 69 v=53248:js=56320:dp=2040:po=192:dimds(7),f(7):n=0:jv=0:k=0:
  71. 70 forc=0to64:poke12288+c,255:next:rem * fill sprite images with blanks
  72. 71 forc=0to7:pokedp+c,po:rem * data pointers
  73. 72 rem
  74. 73 rem
  75. 74 rem
  76. 75 pokev+39+c,c+1:rem * colour sprites
  77. 76 nextc
  78. 77 x=50:forc=0to14step2:pokev+c,x:x=x+10:next:rem * poke x coords
  79. 78 y=200:forc=1to15step2:pokev+c,y:y=y-10:next:rem * poke y coords
  80. 79 forc=0to7:ds(c)=peek(v+1+(c*2)):f(c)=c:next:rem * set up arrays
  81. 80 pokev+21,255:rem * enable sprites
  82. 81 return
  83.